package com.chaodev.base.dao;


import com.chaodev.base.dto.RoleDTO;
import com.chaodev.base.model.Power;
import com.chaodev.base.model.Role;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface RoleDao {

    /**
     * 获取角色列表
     *
     * @param map
     * @return
     */
    List<RoleDTO> roleQuery(Map<String, Object> map);

    /**
     * 新增角色
     *
     * @param role
     * @return
     */
    Integer roleAddOracle(Role role);

    /**
     * 新增角色
     *
     * @param role
     * @return
     */
    Integer roleAddMysql(Role role);

    /**
     * 修改角色
     *
     * @param role
     * @return
     */
    int roleUpd(Role role);

    /**
     * 删除角色信息
     *
     * @param role
     * @return
     */
    int roleDelete(Role role);

    /**
     * 获取角色树
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> getRoleTree(Map<String, Object> map);

    /**
     * 获取权限数据
     *
     * @param map
     * @return
     */
    List<Power> getPowerData(Map<String, Object> map);

    /**
     * 权限新增
     *
     * @param power
     * @return
     */
    int powerAdd(Power power);

    /**
     * 权限删除
     *
     * @param power
     * @return
     */
    int powerDel(Power power);

    /**
     * 根据角色id获取角色信息
     * @param roleId
     * @return
     */
    Role getRoleByRoleId(Integer roleId);

    /**
     * 权限新增
     *
     * @param power
     * @return
     */
    int appPowerAdd(Power power);

    /**
     * 权限删除
     *
     * @param power
     * @return
     */
    int appPowerDel(Power power);

    /**
     * 获取权限数据
     *
     * @param map
     * @return
     */
    List<Power> getAppPowerData(Map<String, Object> map);

}
